package com.atguigu.delivery.service.impl;

import com.atguigu.delivery.dao.api.SysUserDao;
import com.atguigu.delivery.dao.impl.SysUserDaoImpl;
import com.atguigu.delivery.entity.SysUser;
import com.atguigu.delivery.service.api.SysUserService;
import com.atguigu.delivery.util.MD5Util;

public class SysUserServiceImpl implements SysUserService {

    private SysUserDao sysUserDao = new SysUserDaoImpl();

    /**
     * 思路 A：根据 account 查询 SysUser 对象，然后在 Java 代码比较密码是否相等
     * 思路 B：根据 account 和加密后的 password 查询 SysUser 对象，直接返回 SysUser
     * MD5 算法不可逆，我们只能把明文加密后比较密文，无法把密文解密比较明文
     * @param account
     * @param password
     * @return
     */
    @Override
    public SysUser getSysUserForLogin(String account, String password) {

        // 1、针对 password 进行加密
        String encodedPassword = MD5Util.encrypt(password);

        // 2、使用账号和加密以后的密码查询数据库
        return sysUserDao.selectUserByAccountAndPassword(account, encodedPassword);
    }
}
